<!-- This HTML file has been created by texi2html 1.30
     from ../r4rs.texi on 14 July 1994 -->

<TITLE>R4RS Scheme</TITLE>
<!-- Changed by: Robert Findler,  6-Sep-1996 -->
<H1>Scheme</H1>
<H2>Revised(4) Report on the Algorithmic Language Scheme</H2>
<ADDRESS>WILLIAM CLINGER AND JONATHAN REES (<I>Editors</I>)</ADDRESS>
<ADDRESS>H. ABELSON</ADDRESS>
<ADDRESS>N. I. ADAMS IV</ADDRESS>
<ADDRESS>D. H. BARTLEY</ADDRESS>
<ADDRESS>G. BROOKS</ADDRESS>
<ADDRESS>R. K. DYBVIG</ADDRESS>
<ADDRESS>D. P. FRIEDMAN</ADDRESS>
<ADDRESS>R. HALSTEAD</ADDRESS>
<ADDRESS>C. HANSON</ADDRESS>
<ADDRESS>C. T. HAYNES</ADDRESS>
<ADDRESS>E. KOHLBECKER</ADDRESS>
<ADDRESS>D. OXLEY</ADDRESS>
<ADDRESS>K. M. PITMAN</ADDRESS>
<ADDRESS>G. J. ROZAS</ADDRESS>
<ADDRESS>G. L. STEELE JR.</ADDRESS>
<ADDRESS>G. J. SUSSMAN</ADDRESS>
<ADDRESS>M. WAND</ADDRESS>
<ADDRESS>Converted to TeXinfo by A. JAFFER (jaffer@ai.mit.edu)</ADDRESS>
<a name = "TOC">
<P>
<UL>
<LI><A NAME="SEC1" HREF="r4rs_1.htm#SEC1">Summary</A>
<LI><A NAME="SEC2" HREF="r4rs_2.htm#SEC2">Introduction</A>
<UL>
<LI><A NAME="SEC3" HREF="r4rs_2.htm#SEC3">History</A>
<LI><A NAME="SEC4" HREF="r4rs_2.htm#SEC4">Background</A>
<LI><A NAME="SEC5" HREF="r4rs_2.htm#SEC5">Acknowledgements</A>
</UL>
<LI><A NAME="SEC6" HREF="r4rs_3.htm#SEC6">Overview of Scheme</A>
<UL>
<LI><A NAME="SEC7" HREF="r4rs_3.htm#SEC7">Semantics</A>
<LI><A NAME="SEC8" HREF="r4rs_3.htm#SEC8">Syntax</A>
<LI><A NAME="SEC9" HREF="r4rs_3.htm#SEC9">Notation and terminology</A>
<UL>
<LI><A NAME="SEC10" HREF="r4rs_3.htm#SEC10">Essential and non-essential features</A>
<LI><A NAME="SEC11" HREF="r4rs_3.htm#SEC11">Error situations and unspecified behavior</A>
<LI><A NAME="SEC12" HREF="r4rs_3.htm#SEC12">Entry format</A>
<LI><A NAME="SEC13" HREF="r4rs_3.htm#SEC13">Evaluation examples</A>
<LI><A NAME="SEC14" HREF="r4rs_3.htm#SEC14">Naming conventions</A>
</UL>
</UL>
<LI><A NAME="SEC15" HREF="r4rs_4.htm#SEC15">Lexical conventions</A>
<UL>
<LI><A NAME="SEC16" HREF="r4rs_4.htm#SEC16">Identifiers</A>
<LI><A NAME="SEC17" HREF="r4rs_4.htm#SEC17">Whitespace and comments</A>
<LI><A NAME="SEC18" HREF="r4rs_4.htm#SEC18">Other notations</A>
</UL>
<LI><A NAME="SEC19" HREF="r4rs_5.htm#SEC19">Basic concepts</A>
<UL>
<LI><A NAME="SEC20" HREF="r4rs_5.htm#SEC20">Variables and regions</A>
<LI><A NAME="SEC21" HREF="r4rs_5.htm#SEC21">True and false</A>
<LI><A NAME="SEC22" HREF="r4rs_5.htm#SEC22">External representations</A>
<LI><A NAME="SEC23" HREF="r4rs_5.htm#SEC23">Disjointness of types</A>
<LI><A NAME="SEC24" HREF="r4rs_5.htm#SEC24">Storage model</A>
</UL>
<LI><A NAME="SEC25" HREF="r4rs_6.htm#SEC25">Expressions</A>
<UL>
<LI><A NAME="SEC26" HREF="r4rs_6.htm#SEC26">Primitive expression types</A>
<UL>
<LI><A NAME="SEC27" HREF="r4rs_6.htm#SEC27">Variable references</A>
<LI><A NAME="SEC28" HREF="r4rs_6.htm#SEC28">Literal expressions</A>
<LI><A NAME="SEC29" HREF="r4rs_6.htm#SEC29">Procedure calls</A>
<LI><A NAME="SEC30" HREF="r4rs_6.htm#SEC30">Lambda expressions</A>
<LI><A NAME="SEC31" HREF="r4rs_6.htm#SEC31">Conditionals</A>
<LI><A NAME="SEC32" HREF="r4rs_6.htm#SEC32">Assignments</A>
</UL>
<LI><A NAME="SEC33" HREF="r4rs_6.htm#SEC33">Derived expression types</A>
<UL>
<LI><A NAME="SEC34" HREF="r4rs_6.htm#SEC34">Conditionals</A>
<LI><A NAME="SEC35" HREF="r4rs_6.htm#SEC35">Binding constructs</A>
<LI><A NAME="SEC36" HREF="r4rs_6.htm#SEC36">Sequencing</A>
<LI><A NAME="SEC37" HREF="r4rs_6.htm#SEC37">Iteration</A>
<LI><A NAME="SEC38" HREF="r4rs_6.htm#SEC38">Delayed evaluation</A>
<LI><A NAME="SEC39" HREF="r4rs_6.htm#SEC39">Quasiquotation</A>
</UL>
</UL>
<LI><A NAME="SEC40" HREF="r4rs_7.htm#SEC40">Program structure</A>
<UL>
<LI><A NAME="SEC41" HREF="r4rs_7.htm#SEC41">Programs</A>
<LI><A NAME="SEC42" HREF="r4rs_7.htm#SEC42">Definitions</A>
<UL>
<LI><A NAME="SEC43" HREF="r4rs_7.htm#SEC43">Top level definitions</A>
<LI><A NAME="SEC44" HREF="r4rs_7.htm#SEC44">Internal definitions</A>
</UL>
</UL>
<LI><A NAME="SEC45" HREF="r4rs_8.htm#SEC45">Standard procedures</A>
<UL>
<LI><A NAME="SEC46" HREF="r4rs_8.htm#SEC46">Booleans</A>
<LI><A NAME="SEC47" HREF="r4rs_8.htm#SEC47">Equivalence predicates</A>
<LI><A NAME="SEC48" HREF="r4rs_8.htm#SEC48">Pairs and lists</A>
<LI><A NAME="SEC49" HREF="r4rs_8.htm#SEC49">Symbols</A>
<LI><A NAME="SEC50" HREF="r4rs_8.htm#SEC50">Numbers</A>
<UL>
<LI><A NAME="SEC51" HREF="r4rs_8.htm#SEC51">Numerical types</A>
<LI><A NAME="SEC52" HREF="r4rs_8.htm#SEC52">Exactness</A>
<LI><A NAME="SEC53" HREF="r4rs_8.htm#SEC53">Implementation restrictions</A>
<LI><A NAME="SEC54" HREF="r4rs_8.htm#SEC54">Syntax of numerical constants</A>
<LI><A NAME="SEC55" HREF="r4rs_8.htm#SEC55">Numerical operations</A>
<LI><A NAME="SEC56" HREF="r4rs_8.htm#SEC56">Numerical input and output</A>
</UL>
<LI><A NAME="SEC57" HREF="r4rs_8.htm#SEC57">Characters</A>
<LI><A NAME="SEC58" HREF="r4rs_8.htm#SEC58">Strings</A>
<LI><A NAME="SEC59" HREF="r4rs_8.htm#SEC59">Vectors</A>
<LI><A NAME="SEC60" HREF="r4rs_8.htm#SEC60">Control features</A>
<LI><A NAME="SEC61" HREF="r4rs_8.htm#SEC61">Input and output</A>
<UL>
<LI><A NAME="SEC62" HREF="r4rs_8.htm#SEC62">Ports</A>
<LI><A NAME="SEC63" HREF="r4rs_8.htm#SEC63">Input</A>
<LI><A NAME="SEC64" HREF="r4rs_8.htm#SEC64">Output</A>
<LI><A NAME="SEC65" HREF="r4rs_8.htm#SEC65">System interface</A>
</UL>
</UL>
<LI><A NAME="SEC66" HREF="r4rs_9.htm#SEC66">Formal syntax and semantics</A>
<UL>
<LI><A NAME="SEC67" HREF="r4rs_9.htm#SEC67">Formal syntax</A>
<UL>
<LI><A NAME="SEC68" HREF="r4rs_9.htm#SEC68">Lexical structure</A>
<LI><A NAME="SEC69" HREF="r4rs_9.htm#SEC69">External representation</A>
<LI><A NAME="SEC70" HREF="r4rs_9.htm#SEC70">Expressions</A>
<LI><A NAME="SEC71" HREF="r4rs_9.htm#SEC71">Quasiquotations</A>
<LI><A NAME="SEC72" HREF="r4rs_9.htm#SEC72">Programs and definitions</A>
</UL>
<LI><A NAME="SEC73" HREF="r4rs_9.htm#SEC73">Formal semantics</A>
<UL>
<LI><A NAME="SEC74" HREF="r4rs_9.htm#SEC74">Abstract syntax</A>
<LI><A NAME="SEC75" HREF="r4rs_9.htm#SEC75">Domain equations</A>
<LI><A NAME="SEC76" HREF="r4rs_9.htm#SEC76">Semantic functions</A>
<LI><A NAME="SEC77" HREF="r4rs_9.htm#SEC77">Auxiliary functions</A>
</UL>
<LI><A NAME="SEC78" HREF="r4rs_9.htm#SEC78">derived expression types</A>
</UL>
<LI><A NAME="SEC79" HREF="r4rs_10.htm#SEC79">NOTES</A>
<LI><A NAME="SEC80" HREF="r4rs_11.htm#SEC80">Example</A>
<LI><A NAME="SEC81" HREF="r4rs_12.htm#SEC81">Macros</A>
<UL>
<LI><A NAME="SEC82" HREF="r4rs_12.htm#SEC82">Binding syntactic keywords</A>
<LI><A NAME="SEC83" HREF="r4rs_12.htm#SEC83">Pattern language</A>
<LI><A NAME="SEC84" HREF="r4rs_12.htm#SEC84">A compatible low-level macro facility</A>
<LI><A NAME="SEC85" HREF="r4rs_12.htm#SEC85">Acknowledgements</A>
</UL>
<LI><A NAME="SEC86" HREF="r4rs_13.htm#SEC86">Bibliography</A>
<LI><A NAME="SEC87" HREF="r4rs_14.htm#SEC87">Alphabetic index of definitions of concepts, keywords, and procedures</A>
<UL>
<LI><A NAME="SEC88" HREF="r4rs_14.htm#SEC88">Concepts</A>
<LI><A NAME="SEC89" HREF="r4rs_14.htm#SEC89">Keywords</A>
<LI><A NAME="SEC90" HREF="r4rs_14.htm#SEC90">Procedures</A>
</UL>
</UL>
